package com.baibei.product.trade;

import com.baibei.basic.IPresenter;
import com.baibei.basic.IPresenterView;
import com.baibei.model.CouponInfo;
import com.baibei.model.ProductInfo;
import com.baibei.model.QuotationInfo;
import com.baibei.model.TradeTimeInfo;

import java.util.List;

/**
 * 订购协议
 * Created by ChenRui on 2017/8/8 0008 16:52.
 */
public interface TradeHomeContract {

    interface Presenter extends IPresenter {

        /**
         * 检查余额是否足够
         */
        boolean checkBalance();

        /**
         * 加载余额以及优惠券
         */
        void loadBalanceAndCoupons();

        /**
         * 加载基础信息
         * 价格
         * 开休市
         */
        void loadBasicData();

        /**
         * 获取可用体验券列表
         *
         * @return return
         */
        List<CouponInfo> getValidCouponList();

        /**
         * 获取建议数量
         *
         * @return return
         */
        List<Integer> getSuggestNumbers();

        /**
         * 获取最大自定义数量
         *
         * @return return
         */
        int getMaxDefindCount();

        /**
         * 获取提醒内容
         */
        void getHelp();
    }

    interface View extends IPresenterView {

        ProductInfo getProduct();

        /**
         * 没有价格显示
         */
        void onEmptyPrice();

        /**
         * 产品价格发生变动回调
         *
         * @param quotationInfo
         */
        void onLoadProductPrice(QuotationInfo quotationInfo);

        /**
         * 更新价格
         *
         * @param quotationInfo quotationInfo
         */
        void upDateProductPrice(QuotationInfo quotationInfo);

        /**
         * 加载体验券
         *
         * @param couponInfos couponInfos
         */
        void onLoadCoupons(List<CouponInfo> couponInfos);

        /**
         * 交易时间数据(是否开休市)
         */
        void onLoadTradeTimeInfo(TradeTimeInfo info);
        /**
         * 加载提醒内容成功
         */
        void onLoadHelpSuccess(String s);
    }
}
